package top.ztf.erp.service;

import com.github.pagehelper.PageInfo;
import top.ztf.erp.domain.Role;
import top.ztf.erp.vo.PermissionVo;

import java.util.List;
import java.util.Map;

public interface RoleService {

    /**
     * 返回角色分页list
     * @param pageNo
     * @param pageSize
     * @return
     */
    PageInfo<Role> getRolePage(String pageNo,String pageSize);

    /**
     * 根据id查询角色信息
     * @param id
     * @return
     */
    Role getRoleById(String id);

    /**
     * 保存角色
     * @param role
     * @return
     */
    int save(Role role);

    /**
     * 根据角色id 查询它所拥有的权限菜单
     * @param roleId
     * @return
     */
    List<PermissionVo> getPermissionByRole(String roleId);

    /**
     * 查询授权菜单
     * @param roleId
     * @return
     */
    List<Map<String, Object>> getAssignPermission(String roleId);

    /**
     * 根据角色id 修改角色所拥有得权限菜单
     * @param roleId 角色id
     * @param arrays 所选中授权得权限菜单
     * @return
     */
    int updatePermissionByRole(String roleId, String[] arrays);

    /**
     * 批量删除角色
     * @param arrays 角色id
     * @return
     */
    int deleteRole(String[] arrays);

    /**
     * 根据角色id 修改角色信息
     * @param role
     * @return
     */
    int update(Role role);

    /**
     * 根据名称查询角色id
     * @param id 角色id
     * @param name 角色名称
     * @return
     */
    int selectRoleByName(String id, String name);
}
